Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


admin/admin.mu main (dac94b89) Text, 4.26 KB




import os
import sys
from datetime import datetime

import manage


def check_forum_version():
if conf.update_checks_enabled:
if conf.VERSION == "git":
print(" Note: Development/testing version.")
else:
# request the version from aspark.uber.space; can be disabled
# This could be done via RNS, but would slow down page loading (at least now (May 2024)).
import urllib.request

remote_version = (
urllib.request.urlopen(
"https://aspark.uber.space/nomadforum/current_version.txt"
)
.read(100)
.decode("utf-8")
.rstrip()
)
if remote_version != conf.VERSION:
print(f" Update available ({conf.VERSION} -> {remote_version})")


def print_fields():
print(">Admin page")
print()
print(">>Forum info")
forum_info = (
main.query_database("SELECT value FROM settings WHERE key = 'main_page_info'")[
0
][0]
.replace(">", "\>")
.replace("n", "$newline$")
.replace("\\", "\")
.replace("$newline$\#", "$newline$#")
)
if forum_info.startswith("\#"):
forum_info = forum_info.replace("\#", "#", 1)
print(f" ")
print(
" $newline$ creates a new line. You can just use enter and it will be automatically replaced."
)
print(
f" Save"
)
print()
print(">>Backup")
print(
)
print()
print(">>Users")
print(
f" Registered accounts: {main.query_database('SELECT COUNT(*) FROM users')[0][0]}"
)
print(f" List users")
print()
print(">>Version")
print(f" Current version: {conf.VERSION}")
check_forum_version()
database_version = main.query_database(
"SELECT value FROM settings WHERE key = 'db_version'"
)[0][0]
print(f" Database version: {database_version}")


try:
action = ""
forum_info_field = ""
for env_variable in os.environ:
if env_variable == "var_action":
action = os.environ[env_variable]
elif env_variable == "field_forum_info":
forum_info_field = os.environ[env_variable]
sys.path.extend(
[os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))]
)
import main
from main import conf

session = main.handle_ids()
main.print_header(session, reload=True)
if main.check_admin(session):
if action == "backup" and main.verify_link_id():
now = datetime.now()
suffix = now.strftime("%Y%m%d_%H-%M-%S")
manage.create_backup(suffix)
print(">Backup created!n")
elif action == "save" and main.verify_link_id():
forum_info_field = main.prepare_content(forum_info_field)
main.execute_sql(
f"UPDATE settings SET value = '{forum_info_field}' WHERE key = 'main_page_info'"
)
print_fields()
main.close_database()
else:
print(">Unauthorized!")
main.close_database(write_changes=False)
exit(0)
except Exception:
print("An error occured")


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────